﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using Chilis.Marketing.Data.Access;
using Chilis.Marketing.Business.Entity;
using System.Data;

namespace Chilis.Marketing.Business.Logic
{
    public class BLActividad
    {
        #region ATRIBUTOS

        private DAActividad actividadDA;

        #endregion

        #region CONSTRUCTOR

        public BLActividad()
        {
            this.actividadDA = new DAActividad();
        }

        #endregion

        #region PROPIEDADES
        #endregion

        #region METODOS



        /// <summary>
        /// Método              : insertarActividad
        /// Descripción         : Inserta Actividad en la BD
        /// Fecha Creacion      : 26/03/2012
        /// Creador             : TP2
        /// Ultimo en modificar : TP2
        /// Ultima modificacion : 26/03/2012
        /// </summary>
        /// <param name="actividadBE">Entidad que representa la Actividad</param>
        /// <param name="campanhaBE">Entidad que representa la Campaña</param>
        /// <returns>Retorna un booleano que indica si se actualizo el registro</returns>
        public bool insertarActividad(BEActividad actividadBE,
                                      BECampanha campanhaBE)
        {
            bool respuesta = false;
            try
            {
                int? IdActividad = actividadDA.insertarActividad(actividadBE, campanhaBE, true);
                if (IdActividad.HasValue && IdActividad.Value > 0)
                {
                    respuesta = true;
                }
            }
            catch (Exception ex)
            {
                throw ex;
            }
            finally
            {
            }
            return respuesta;
        }

        /// <summary>
        /// Método              : modificarActividad
        /// Descripción         : Modifica Actividad en la BD
        /// Fecha Creacion      : 26/03/2012
        /// Creador             : TP2
        /// Ultimo en modificar : TP2
        /// Ultima modificacion : 26/03/2012
        /// </summary>
        /// <param name="actividadBE">Entidad que representa la Actividad</param>
        /// <param name="campanhaBE">Entidad que representa la Campaña</param>
        /// <returns>Retorna un booleano que indica si se actualizo el registro</returns>
        public bool modificarActividad(BEActividad actividadBE,
                                       BECampanha campanhaBE)
        {
            bool respuesta = true;
            try
            {
                respuesta = actividadDA.modificarActividad(actividadBE, campanhaBE, true);
            }
            catch (Exception ex)
            {
                throw ex;
            }
            finally
            {
            }
            return respuesta;
        }

        /// <summary>
        /// Método              : eliminarActividad
        /// Descripción         : Elimina Actividad en la BD
        /// Fecha Creacion      : 20/03/2012
        /// Creador             : TP2
        /// Ultimo en modificar : TP2
        /// Ultima modificacion : 20/03/2012
        /// </summary>
        /// <param name="actividadBE">Entidad que representa la Actividad</param>
        /// <returns>Retorna un booleano que indica si se actualizo el registro</returns>
        public bool eliminarActividad(BEActividad actividadBE)
        {
            bool respuesta = true;
            try
            {
                respuesta = actividadDA.eliminarActividad(actividadBE, true);
            }
            catch (Exception ex)
            {
                throw ex;
            }
            finally
            {
            }
            return respuesta;
        }

        /// <summary>
        /// Método              : actualizarEstadoActividad
        /// Descripción         : Actualiza Estado de la Actividad en la BD
        /// Fecha Creacion      : 26/03/2012
        /// Creador             : TP2
        /// Ultimo en modificar : TP2
        /// Ultima modificacion : 26/03/2012
        /// </summary>
        /// <param name="actividadBE">Entidad que representa la Actividad</param>
        /// <returns>Retorna un booleano que indica si se actualizo el registro</returns>
        public bool actualizarEstadoActividad(BEActividad actividadBE)
        {
            bool respuesta = true;
            try
            {
                respuesta = actividadDA.actualizarEstadoActividad(actividadBE, true);
            }
            catch (Exception ex)
            {
                throw ex;
            }
            finally
            {
            }
            return respuesta;
        }


        /// <summary>
        /// Método              : obtenerActividadPorId
        /// Descripción         : Obtiene la Entidad Actividad
        /// Fecha Creacion      : 26/03/2012
        /// Creador             : TP2
        /// Ultimo en modificar : TP2
        /// Ultima modificacion : 26/03/2012
        /// </summary>
        /// <param name="idActividad">Id Actividad</param>
        /// <returns>Retorna el Objeto que representa la Entidad Actividad</returns>
        public BEActividad obtenerActividadPorId(int idActividad)
        {
            return actividadDA.obtenerActividadPorId(idActividad);
        }

        /// <summary>
        /// Método              : obtenerActividadPorRecursoRolId
        /// Descripción         : Obtiene la Entidad Actividad
        /// Fecha Creacion      : 26/03/2012
        /// Creador             : TP2
        /// Ultimo en modificar : TP2
        /// Ultima modificacion : 26/03/2012
        /// </summary>
        /// <param name="idRecursoRol">Id Rol Actividad</param>
        /// <returns>Retorna el Objeto que representa la Entidad Actividad</returns>
        public BEActividad obtenerActividadPorRecursoRolId(int idRecursoRol)
        {
            return actividadDA.obtenerActividadPorRecursoRolId(idRecursoRol);
        }

        /// <summary>
        /// Método              : obtenerActividadPorRecursoMaterialId
        /// Descripción         : Obtiene la Entidad Actividad
        /// Fecha Creacion      : 26/03/2012
        /// Creador             : TP2
        /// Ultimo en modificar : TP2
        /// Ultima modificacion : 26/03/2012
        /// </summary>
        /// <param name="idRecursoMaterial">Id Recurso Material</param>
        /// <returns>Retorna el Objeto que representa la Entidad Actividad</returns>
        public BEActividad obtenerActividadPorRecursoMaterialId(int idRecursoMaterial)
        {
            return actividadDA.obtenerActividadPorRecursoMaterialId(idRecursoMaterial);
        }

        /// <summary>
        /// Función             : obtenerActividadesPorIdCampanha
        /// Descripción         : Busca los Roles de acuerdo a los filtros configurados
        /// Fecha Creacion      : 26/03/2012
        /// Creador             : TP2
        /// Ultimo en modificar : TP2
        /// Ultima modificacion : 26/03/2012
        /// </summary>
        /// <param name="filtro">Entidad que representa la Actividad</param>
        /// <returns>Listado de Roles de acuerdo al filtro especificado</returns>
        public DataTable obtenerRolesPorIdActividad(int idActividad)
        {
            return actividadDA.obtenerRolesPorIdActividad(idActividad);
        }

        /// <summary>
        /// Función             : obtenerMaterialesPorIdActividad
        /// Descripción         : Busca los Roles de acuerdo a los filtros configurados
        /// Fecha Creacion      : 26/03/2012
        /// Creador             : TP2
        /// Ultimo en modificar : TP2
        /// Ultima modificacion : 26/03/2012
        /// </summary>
        /// <param name="filtro">Entidad que representa la Actividad</param>
        /// <returns>Listado de Roles de acuerdo al filtro especificado</returns>
        public DataTable obtenerMaterialesPorIdActividad(int idActividad)
        {
            return actividadDA.obtenerMaterialesPorIdActividad(idActividad);
        }

        /// <summary>
        /// Función             : obtenerRecursosPorIdActividad
        /// Descripción         : Busca los Recursos de acuerdo a los filtros configurados
        /// Fecha Creacion      : 26/03/2012
        /// Creador             : TP2
        /// Ultimo en modificar : TP2
        /// Ultima modificacion : 26/03/2012
        /// </summary>
        /// <param name="filtro">Entidad que representa la Actividad</param>
        /// <returns>Listado de Roles de acuerdo al filtro especificado</returns>
        public DataSet obtenerRecursosPorIdActividad(int idActividad)
        {
            return actividadDA.obtenerRecursosPorIdActividad(idActividad);
        }

        #endregion
    }
}
